package com.ehotting.edsta.circuitDesign.generator.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * @TableName ot_circuit_design
 */
public class OtCircuitDesign implements Serializable {
    /**
     * 唯一标识该电路设计的ID
     */
    private Integer id;

    /**
     * 电路设计的名称或项目名称
     */
    private String design_name;

    /**
     * 负责该电路设计的设计师姓名
     */
    private String designer_name;

    /**
     * 电路设计开始的日期
     */
    private Date design_start_date;

    /**
     * 电路设计完成的日期（可选）
     */
    private Date completion_date;

    /**
     * 如模拟电路、数字电路、混合信号电路等
     */
    private String design_type;

    /**
     * 简要描述电路设计的功能和用途
     */
    private String function_description;

    /**
     * 电路正常工作所需的输入电压（伏特）
     */
    private BigDecimal input_voltage;

    /**
     * 电路正常工作时的电流（安培）
     */
    private BigDecimal operating_current;

    /**
     * 电路的最大功率消耗（瓦特）
     */
    private BigDecimal max_power_consumption;

    /**
     * 列出电路设计中的主要电子元件及其型号
     */
    private String main_component_list;

    /**
     * 印刷电路板（PCB）的尺寸（单位：毫米或英寸）
     */
    private String pcb_dimensions;

    /**
     * 对PCB布局的特殊要求或约束条件
     */
    private String layout_constraints;

    /**
     * 描述如何测试该电路设计的步骤和方法
     */
    private String testing_plan;

    /**
     * 提供常见的故障排除步骤和建议
     */
    private String troubleshooting_guide;

    /**
     * 使用或维护电路设计时需要注意的安全事项
     */
    private String safety_precautions;

    /**
     * 电路设计是否符合特定的环保法规或标准
     */
    private String environmental_compliance;

    /**
     * 记录电路设计的修订历史，包括修订日期、内容和修订者
     */
    private String revision_history;

    /**
     * 与电路设计相关的文档（如原理图、BOM表等）的链接或存储位置
     */
    private String related_document_links;

    /**
     * 其他需要记录的信息或特别说明
     */
    private String notes;

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识该电路设计的ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 唯一标识该电路设计的ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 电路设计的名称或项目名称
     */
    public String getDesign_name() {
        return design_name;
    }

    /**
     * 电路设计的名称或项目名称
     */
    public void setDesign_name(String design_name) {
        this.design_name = design_name;
    }

    /**
     * 负责该电路设计的设计师姓名
     */
    public String getDesigner_name() {
        return designer_name;
    }

    /**
     * 负责该电路设计的设计师姓名
     */
    public void setDesigner_name(String designer_name) {
        this.designer_name = designer_name;
    }

    /**
     * 电路设计开始的日期
     */
    public Date getDesign_start_date() {
        return design_start_date;
    }

    /**
     * 电路设计开始的日期
     */
    public void setDesign_start_date(Date design_start_date) {
        this.design_start_date = design_start_date;
    }

    /**
     * 电路设计完成的日期（可选）
     */
    public Date getCompletion_date() {
        return completion_date;
    }

    /**
     * 电路设计完成的日期（可选）
     */
    public void setCompletion_date(Date completion_date) {
        this.completion_date = completion_date;
    }

    /**
     * 如模拟电路、数字电路、混合信号电路等
     */
    public String getDesign_type() {
        return design_type;
    }

    /**
     * 如模拟电路、数字电路、混合信号电路等
     */
    public void setDesign_type(String design_type) {
        this.design_type = design_type;
    }

    /**
     * 简要描述电路设计的功能和用途
     */
    public String getFunction_description() {
        return function_description;
    }

    /**
     * 简要描述电路设计的功能和用途
     */
    public void setFunction_description(String function_description) {
        this.function_description = function_description;
    }

    /**
     * 电路正常工作所需的输入电压（伏特）
     */
    public BigDecimal getInput_voltage() {
        return input_voltage;
    }

    /**
     * 电路正常工作所需的输入电压（伏特）
     */
    public void setInput_voltage(BigDecimal input_voltage) {
        this.input_voltage = input_voltage;
    }

    /**
     * 电路正常工作时的电流（安培）
     */
    public BigDecimal getOperating_current() {
        return operating_current;
    }

    /**
     * 电路正常工作时的电流（安培）
     */
    public void setOperating_current(BigDecimal operating_current) {
        this.operating_current = operating_current;
    }

    /**
     * 电路的最大功率消耗（瓦特）
     */
    public BigDecimal getMax_power_consumption() {
        return max_power_consumption;
    }

    /**
     * 电路的最大功率消耗（瓦特）
     */
    public void setMax_power_consumption(BigDecimal max_power_consumption) {
        this.max_power_consumption = max_power_consumption;
    }

    /**
     * 列出电路设计中的主要电子元件及其型号
     */
    public String getMain_component_list() {
        return main_component_list;
    }

    /**
     * 列出电路设计中的主要电子元件及其型号
     */
    public void setMain_component_list(String main_component_list) {
        this.main_component_list = main_component_list;
    }

    /**
     * 印刷电路板（PCB）的尺寸（单位：毫米或英寸）
     */
    public String getPcb_dimensions() {
        return pcb_dimensions;
    }

    /**
     * 印刷电路板（PCB）的尺寸（单位：毫米或英寸）
     */
    public void setPcb_dimensions(String pcb_dimensions) {
        this.pcb_dimensions = pcb_dimensions;
    }

    /**
     * 对PCB布局的特殊要求或约束条件
     */
    public String getLayout_constraints() {
        return layout_constraints;
    }

    /**
     * 对PCB布局的特殊要求或约束条件
     */
    public void setLayout_constraints(String layout_constraints) {
        this.layout_constraints = layout_constraints;
    }

    /**
     * 描述如何测试该电路设计的步骤和方法
     */
    public String getTesting_plan() {
        return testing_plan;
    }

    /**
     * 描述如何测试该电路设计的步骤和方法
     */
    public void setTesting_plan(String testing_plan) {
        this.testing_plan = testing_plan;
    }

    /**
     * 提供常见的故障排除步骤和建议
     */
    public String getTroubleshooting_guide() {
        return troubleshooting_guide;
    }

    /**
     * 提供常见的故障排除步骤和建议
     */
    public void setTroubleshooting_guide(String troubleshooting_guide) {
        this.troubleshooting_guide = troubleshooting_guide;
    }

    /**
     * 使用或维护电路设计时需要注意的安全事项
     */
    public String getSafety_precautions() {
        return safety_precautions;
    }

    /**
     * 使用或维护电路设计时需要注意的安全事项
     */
    public void setSafety_precautions(String safety_precautions) {
        this.safety_precautions = safety_precautions;
    }

    /**
     * 电路设计是否符合特定的环保法规或标准
     */
    public String getEnvironmental_compliance() {
        return environmental_compliance;
    }

    /**
     * 电路设计是否符合特定的环保法规或标准
     */
    public void setEnvironmental_compliance(String environmental_compliance) {
        this.environmental_compliance = environmental_compliance;
    }

    /**
     * 记录电路设计的修订历史，包括修订日期、内容和修订者
     */
    public String getRevision_history() {
        return revision_history;
    }

    /**
     * 记录电路设计的修订历史，包括修订日期、内容和修订者
     */
    public void setRevision_history(String revision_history) {
        this.revision_history = revision_history;
    }

    /**
     * 与电路设计相关的文档（如原理图、BOM表等）的链接或存储位置
     */
    public String getRelated_document_links() {
        return related_document_links;
    }

    /**
     * 与电路设计相关的文档（如原理图、BOM表等）的链接或存储位置
     */
    public void setRelated_document_links(String related_document_links) {
        this.related_document_links = related_document_links;
    }

    /**
     * 其他需要记录的信息或特别说明
     */
    public String getNotes() {
        return notes;
    }

    /**
     * 其他需要记录的信息或特别说明
     */
    public void setNotes(String notes) {
        this.notes = notes;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        OtCircuitDesign other = (OtCircuitDesign) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getDesign_name() == null ? other.getDesign_name() == null : this.getDesign_name().equals(other.getDesign_name()))
            && (this.getDesigner_name() == null ? other.getDesigner_name() == null : this.getDesigner_name().equals(other.getDesigner_name()))
            && (this.getDesign_start_date() == null ? other.getDesign_start_date() == null : this.getDesign_start_date().equals(other.getDesign_start_date()))
            && (this.getCompletion_date() == null ? other.getCompletion_date() == null : this.getCompletion_date().equals(other.getCompletion_date()))
            && (this.getDesign_type() == null ? other.getDesign_type() == null : this.getDesign_type().equals(other.getDesign_type()))
            && (this.getFunction_description() == null ? other.getFunction_description() == null : this.getFunction_description().equals(other.getFunction_description()))
            && (this.getInput_voltage() == null ? other.getInput_voltage() == null : this.getInput_voltage().equals(other.getInput_voltage()))
            && (this.getOperating_current() == null ? other.getOperating_current() == null : this.getOperating_current().equals(other.getOperating_current()))
            && (this.getMax_power_consumption() == null ? other.getMax_power_consumption() == null : this.getMax_power_consumption().equals(other.getMax_power_consumption()))
            && (this.getMain_component_list() == null ? other.getMain_component_list() == null : this.getMain_component_list().equals(other.getMain_component_list()))
            && (this.getPcb_dimensions() == null ? other.getPcb_dimensions() == null : this.getPcb_dimensions().equals(other.getPcb_dimensions()))
            && (this.getLayout_constraints() == null ? other.getLayout_constraints() == null : this.getLayout_constraints().equals(other.getLayout_constraints()))
            && (this.getTesting_plan() == null ? other.getTesting_plan() == null : this.getTesting_plan().equals(other.getTesting_plan()))
            && (this.getTroubleshooting_guide() == null ? other.getTroubleshooting_guide() == null : this.getTroubleshooting_guide().equals(other.getTroubleshooting_guide()))
            && (this.getSafety_precautions() == null ? other.getSafety_precautions() == null : this.getSafety_precautions().equals(other.getSafety_precautions()))
            && (this.getEnvironmental_compliance() == null ? other.getEnvironmental_compliance() == null : this.getEnvironmental_compliance().equals(other.getEnvironmental_compliance()))
            && (this.getRevision_history() == null ? other.getRevision_history() == null : this.getRevision_history().equals(other.getRevision_history()))
            && (this.getRelated_document_links() == null ? other.getRelated_document_links() == null : this.getRelated_document_links().equals(other.getRelated_document_links()))
            && (this.getNotes() == null ? other.getNotes() == null : this.getNotes().equals(other.getNotes()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getDesign_name() == null) ? 0 : getDesign_name().hashCode());
        result = prime * result + ((getDesigner_name() == null) ? 0 : getDesigner_name().hashCode());
        result = prime * result + ((getDesign_start_date() == null) ? 0 : getDesign_start_date().hashCode());
        result = prime * result + ((getCompletion_date() == null) ? 0 : getCompletion_date().hashCode());
        result = prime * result + ((getDesign_type() == null) ? 0 : getDesign_type().hashCode());
        result = prime * result + ((getFunction_description() == null) ? 0 : getFunction_description().hashCode());
        result = prime * result + ((getInput_voltage() == null) ? 0 : getInput_voltage().hashCode());
        result = prime * result + ((getOperating_current() == null) ? 0 : getOperating_current().hashCode());
        result = prime * result + ((getMax_power_consumption() == null) ? 0 : getMax_power_consumption().hashCode());
        result = prime * result + ((getMain_component_list() == null) ? 0 : getMain_component_list().hashCode());
        result = prime * result + ((getPcb_dimensions() == null) ? 0 : getPcb_dimensions().hashCode());
        result = prime * result + ((getLayout_constraints() == null) ? 0 : getLayout_constraints().hashCode());
        result = prime * result + ((getTesting_plan() == null) ? 0 : getTesting_plan().hashCode());
        result = prime * result + ((getTroubleshooting_guide() == null) ? 0 : getTroubleshooting_guide().hashCode());
        result = prime * result + ((getSafety_precautions() == null) ? 0 : getSafety_precautions().hashCode());
        result = prime * result + ((getEnvironmental_compliance() == null) ? 0 : getEnvironmental_compliance().hashCode());
        result = prime * result + ((getRevision_history() == null) ? 0 : getRevision_history().hashCode());
        result = prime * result + ((getRelated_document_links() == null) ? 0 : getRelated_document_links().hashCode());
        result = prime * result + ((getNotes() == null) ? 0 : getNotes().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", design_name=").append(design_name);
        sb.append(", designer_name=").append(designer_name);
        sb.append(", design_start_date=").append(design_start_date);
        sb.append(", completion_date=").append(completion_date);
        sb.append(", design_type=").append(design_type);
        sb.append(", function_description=").append(function_description);
        sb.append(", input_voltage=").append(input_voltage);
        sb.append(", operating_current=").append(operating_current);
        sb.append(", max_power_consumption=").append(max_power_consumption);
        sb.append(", main_component_list=").append(main_component_list);
        sb.append(", pcb_dimensions=").append(pcb_dimensions);
        sb.append(", layout_constraints=").append(layout_constraints);
        sb.append(", testing_plan=").append(testing_plan);
        sb.append(", troubleshooting_guide=").append(troubleshooting_guide);
        sb.append(", safety_precautions=").append(safety_precautions);
        sb.append(", environmental_compliance=").append(environmental_compliance);
        sb.append(", revision_history=").append(revision_history);
        sb.append(", related_document_links=").append(related_document_links);
        sb.append(", notes=").append(notes);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}